A data processing system typically includes a host computer system connected via a storage controller to a bulk data storage system storing computer programs and data. An example of a conventional data storage system is described in U.S. Pat. No. 6,560,673. The host typically includes a central processing unit (CPU), a memory subsystem, and an input/output (I/O) subsystem interconnected by a bus subsystem. The memory subsystem usually includes relatively high-speed memory devices, such as solid-state random-access memory (RAM) devices and read-only memory (ROM) devices. In operation, the memory subsystem stores data and program code executable by the CPU. The CPU executes the program code to manipulate the data. The I/O subsystem typically includes the following: at least one user input device, such as a keyboard, mouse, and/or the like; at least one user output device such as a visual display unit, printer, and/or the like; and, at least one communications adapter for connecting the host to one or more similar systems via an intervening wired or wireless data communications network.
Infrequently needed computer program code and data can be stored in the data storage system. To facilitate such storage, the data storage system typically includes an enclosure housing a number of removable data storage devices, such as magnetic or optical disk drive storage devices. The enclosure may have a back plane bus subsystem to which the storage devices are connected. An I/O adapter may also be connected to the back plane. In operation, the I/O adapter facilitates communications between the devices in the enclosure and the storage controller.
The storage controller is usually similar in structure to the host. Specifically, the controller typically includes a CPU, a memory subsystem, and an I/O subsystem interconnected by a bus subsystem. However, in the controller, the CPU is dedicated, by program code stored in the memory subsystem, to controlling the data storage system, and in particular the flow of data and program code between the host and the data storage system.
Communications between the controller and the data storage system is typically achieved via an arbitrated loop communications network. The loop of such a network can only carry one signal at any one time. Therefore, the controller can only communicate with a storage device in the data storage system after having first reserved an interval of time in which to communicate with this device on the loop. During that interval, the controller cannot communicate with other storage devices. The net result is a communications limitation, which is disadvantageous. That is, regardless of the speed of the storage devices and the intervening connections, only one storage device can perform I/O operations at any given time. For this and other reasons, there is a need for the present invention.